-- Network Working Group                                            B. Aboba
-- Request for Comments: 2618                                        G. Zorn
-- Category: Standards Track                                       Microsoft
--                                                                 June 1999
-- 
-- 
--                     RADIUS Authentication Client MIB

RADIUS-AUTH-CLIENT-MIB DEFINITIONS ::= BEGIN

IMPORTS
       MODULE-IDENTITY, OBJECT-TYPE, OBJECT-IDENTITY,
       Counter32, Integer32, Gauge32,
       IpAddress, TimeTicks, mib-2      FROM SNMPv2-SMI
       SnmpAdminString                  FROM SNMP-FRAMEWORK-MIB
       MODULE-COMPLIANCE, OBJECT-GROUP  FROM SNMPv2-CONF;

radiusAuthClientMIB MODULE-IDENTITY
       LAST-UPDATED "9906110000Z" -- 11 Jun 1999
       ORGANIZATION "IETF RADIUS Working Group."
       CONTACT-INFO
              " Bernard Aboba
                Microsoft

                One Microsoft Way
                Redmond, WA  98052
                US

                Phone: +1 425 936 6605
                EMail: bernarda@microsoft.com"
       DESCRIPTION
             "The MIB module for entities implementing the client
              side of the Remote Access Dialin User Service (RADIUS)
              authentication protocol."
       REVISION "9906110000Z"    -- 11 Jun 1999
       DESCRIPTION "Initial version as published in RFC 2618"
       ::= { radiusAuthentication 2 }

radiusMIB OBJECT-IDENTITY
       STATUS  current
       DESCRIPTION
             "The OID assigned to RADIUS MIB work by the IANA."
        ::= { mib-2 67 }

radiusAuthentication  OBJECT IDENTIFIER ::= {radiusMIB 1}

radiusAuthClientMIBObjects     OBJECT IDENTIFIER ::=
                                               { radiusAuthClientMIB 1 }

radiusAuthClient  OBJECT IDENTIFIER ::= { radiusAuthClientMIBObjects 1 }

radiusAuthClientInvalidServerAddresses OBJECT-TYPE
      SYNTAX Counter32
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
            "The number of RADIUS Access-Response packets
             received from unknown addresses."
      ::= { radiusAuthClient 1 }

radiusAuthClientIdentifier OBJECT-TYPE
      SYNTAX SnmpAdminString
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
             "The NAS-Identifier of the RADIUS authentication client.
              This is not necessarily the same as sysName in MIB II."
      ::= { radiusAuthClient 2 }

radiusAuthServerTable OBJECT-TYPE
      SYNTAX     SEQUENCE OF RadiusAuthServerEntry
      MAX-ACCESS not-accessible
      STATUS     current
      DESCRIPTION
            "The (conceptual) table listing the RADIUS authentication
             servers with which the client shares a secret."
      ::= { radiusAuthClient 3 }

radiusAuthServerEntry OBJECT-TYPE
      SYNTAX     RadiusAuthServerEntry
      MAX-ACCESS not-accessible
      STATUS     current
      DESCRIPTION
            "An entry (conceptual row) representing a RADIUS
             authentication server with which the client shares
             a secret."
      INDEX      { radiusAuthServerIndex }
      ::= { radiusAuthServerTable 1 }

RadiusAuthServerEntry ::= SEQUENCE {
      radiusAuthServerIndex                           Integer32,
      radiusAuthServerAddress                         IpAddress,
      radiusAuthClientServerPortNumber                Integer32,
      radiusAuthClientRoundTripTime                   TimeTicks,
      radiusAuthClientAccessRequests                  Counter32,
      radiusAuthClientAccessRetransmissions           Counter32,
      radiusAuthClientAccessAccepts                   Counter32,
      radiusAuthClientAccessRejects                   Counter32,
      radiusAuthClientAccessChallenges                Counter32,
      radiusAuthClientMalformedAccessResponses        Counter32,
      radiusAuthClientBadAuthenticators               Counter32,
      radiusAuthClientPendingRequests                   Gauge32,
      radiusAuthClientTimeouts                        Counter32,
      radiusAuthClientUnknownTypes                    Counter32,
      radiusAuthClientPacketsDropped                  Counter32
}

radiusAuthServerIndex OBJECT-TYPE
      SYNTAX     Integer32 (1..2147483647)
      MAX-ACCESS not-accessible
      STATUS     current
      DESCRIPTION
             "A number uniquely identifying each RADIUS
             Authentication server with which this client
             communicates."
      ::= { radiusAuthServerEntry 1 }

radiusAuthServerAddress OBJECT-TYPE
      SYNTAX     IpAddress
      MAX-ACCESS read-only
      STATUS     current
      DESCRIPTION
            "The IP address of the RADIUS authentication server
             referred to in this table entry."
      ::= { radiusAuthServerEntry 2 }

radiusAuthClientServerPortNumber  OBJECT-TYPE
      SYNTAX Integer32 (0..65535)
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
            "The UDP port the client is using to send requests to
             this server."
      ::= { radiusAuthServerEntry 3 }

radiusAuthClientRoundTripTime  OBJECT-TYPE
      SYNTAX TimeTicks
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
            "The time interval (in hundredths of a second) between
             the most recent Access-Reply/Access-Challenge and the
             Access-Request that matched it from this RADIUS
             authentication server."
      ::= { radiusAuthServerEntry 4 }

-- Request/Response statistics
--
-- TotalIncomingPackets = Accepts + Rejects + Challenges + UnknownTypes
--
-- TotalIncomingPackets - MalformedResponses - BadAuthenticators -
-- UnknownTypes - PacketsDropped = Successfully received
--
-- AccessRequests + PendingRequests + ClientTimeouts =
-- Successfully Received
--
--

radiusAuthClientAccessRequests OBJECT-TYPE
      SYNTAX Counter32
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
            "The number of RADIUS Access-Request packets sent
             to this server. This does not include retransmissions."
      ::= { radiusAuthServerEntry 5 }

radiusAuthClientAccessRetransmissions OBJECT-TYPE
      SYNTAX Counter32
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
            "The number of RADIUS Access-Request packets
             retransmitted to this RADIUS authentication server."
      ::= { radiusAuthServerEntry 6 }

radiusAuthClientAccessAccepts OBJECT-TYPE
      SYNTAX Counter32
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
            "The number of RADIUS Access-Accept packets
             (valid or invalid) received from this server."
      ::= { radiusAuthServerEntry 7 }

radiusAuthClientAccessRejects OBJECT-TYPE
      SYNTAX Counter32
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
            "The number of RADIUS Access-Reject packets
             (valid or invalid) received from this server."
      ::= { radiusAuthServerEntry  8 }

radiusAuthClientAccessChallenges OBJECT-TYPE
      SYNTAX Counter32
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
            "The number of RADIUS Access-Challenge packets
             (valid or invalid) received from this server."
      ::= { radiusAuthServerEntry 9 }

-- "Access-Response" includes an Access-Accept, Access-Challenge
-- or Access-Reject

radiusAuthClientMalformedAccessResponses OBJECT-TYPE
      SYNTAX Counter32
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
            "The number of malformed RADIUS Access-Response
             packets received from this server.
             Malformed packets include packets with
             an invalid length. Bad authenticators or
             Signature attributes or unknown types are not
             included as malformed access responses."
      ::= { radiusAuthServerEntry 10 }

radiusAuthClientBadAuthenticators OBJECT-TYPE
      SYNTAX Counter32
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
            "The number of RADIUS Access-Response packets
             containing invalid authenticators or Signature
             attributes received from this server."
      ::= { radiusAuthServerEntry 11 }

radiusAuthClientPendingRequests OBJECT-TYPE
      SYNTAX Gauge32
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
            "The number of RADIUS Access-Request packets
             destined for this server that have not yet timed out
             or received a response. This variable is incremented
             when an Access-Request is sent and decremented due to
             receipt of an Acess-Accept, Access-Reject or
             Access-Challenge, a timeout or retransmission."
      ::= { radiusAuthServerEntry 12 }

radiusAuthClientTimeouts OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
            "The number of authentication timeouts to this server.
             After a timeout the client may retry to the same
             server, send to a different server, or
             give up. A retry to the same server is counted as a
             retransmit as well as a timeout. A send to a different
             server is counted as a Request as well as a timeout."
      ::= { radiusAuthServerEntry  13 }

radiusAuthClientUnknownTypes OBJECT-TYPE
      SYNTAX Counter32
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
            "The number of RADIUS packets of unknown type which
             were received from this server on the authentication port."
      ::= { radiusAuthServerEntry  14 }

radiusAuthClientPacketsDropped OBJECT-TYPE
      SYNTAX Counter32
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
            "The number of RADIUS packets of which were
             received from this server on the authentication port
             and dropped for some other reason."
      ::= { radiusAuthServerEntry  15 }


-- conformance information

radiusAuthClientMIBConformance
             OBJECT IDENTIFIER ::= { radiusAuthClientMIB 2 }
radiusAuthClientMIBCompliances
             OBJECT IDENTIFIER ::= { radiusAuthClientMIBConformance 1 }
radiusAuthClientMIBGroups
             OBJECT IDENTIFIER ::= { radiusAuthClientMIBConformance 2 }


-- compliance statements

radiusAuthClientMIBCompliance MODULE-COMPLIANCE
     STATUS  current
     DESCRIPTION
           "The compliance statement for authentication clients
            implementing the RADIUS Authentication Client MIB."
     MODULE  -- this module
            MANDATORY-GROUPS { radiusAuthClientMIBGroup }

     ::= { radiusAuthClientMIBCompliances 1 }


-- units of conformance

radiusAuthClientMIBGroup OBJECT-GROUP
     OBJECTS { radiusAuthClientIdentifier,
               radiusAuthClientInvalidServerAddresses,
               radiusAuthServerAddress,
               radiusAuthClientServerPortNumber,
               radiusAuthClientRoundTripTime,
               radiusAuthClientAccessRequests,
               radiusAuthClientAccessRetransmissions,
               radiusAuthClientAccessAccepts,
               radiusAuthClientAccessRejects,
               radiusAuthClientAccessChallenges,
               radiusAuthClientMalformedAccessResponses,
               radiusAuthClientBadAuthenticators,
               radiusAuthClientPendingRequests,
               radiusAuthClientTimeouts,
               radiusAuthClientUnknownTypes,
               radiusAuthClientPacketsDropped
            }
     STATUS  current
     DESCRIPTION
           "The basic collection of objects providing management of
            RADIUS Authentication Clients."
     ::= { radiusAuthClientMIBGroups 1 }

END